package com.nuoniu.sibanyun.entity.erp;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.nuoniu.sibanyun.common.BaseEntity;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.math.BigDecimal;
import java.sql.Blob;
import java.time.LocalDateTime;

/**
 * <p>
 * 会计科目表
 * </p>
 *
 * @author baiqiang
 * @since 2020-09-25
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("fab_accounting")
@ApiModel(value="ErpAccounting对象", description="会计科目表")
public class ErpAccounting extends BaseEntity {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "公司id")
    @TableField("company_id")
    private Integer companyId;

    @ApiModelProperty(value = "账套id")
    @TableField("account_id")
    private Integer accountId;

//    @ApiModelProperty(value = "会计年会")
//    @TableField("account_year")
//    private Integer accountYear;

    @ApiModelProperty(value = "上级记录")
    @TableField("parent_id")
    private Integer parentId;

    @ApiModelProperty(value = "所有上级id")
    @TableField("parent_ids")
    private String parentIds;

    @ApiModelProperty(value = "科目类别id ")
    @TableField("accounting_type_id")
    private Integer accountingTypeId;

    @ApiModelProperty(value = "科目类别名称")
    @TableField("accounting_type_name")
    private String accountingTypeName;

    @ApiModelProperty(value = "所属行业所有Id")
    @TableField("industry_ids")
    private String industryIds;

    @ApiModelProperty(value = "所属行业所有名称")
    @TableField("industry_names")
    private String industryNames;

    @ApiModelProperty(value = "编号 ")
    @TableField("code")
    private String code;

    @ApiModelProperty(value = "使用编码级次")
    @TableField("grade_rule_level")
    private Integer gradeRuleLevel;

    @ApiModelProperty(value = "使用的编码规则")
    @TableField("grade_rule_str")
    private String gradeRuleStr;

    @ApiModelProperty(value = "科目名称")
    @TableField("name")
    private String name;

    @ApiModelProperty(value = "所有科目名称")
    @TableField("tree_names")
    private String treeNames;

    @ApiModelProperty(value = "会计年度")
    @TableField("accounting_year")
    private Integer accountingYear;

    @ApiModelProperty(value = "助记码")
    @TableField("shorthand")
    private String shorthand;

    @ApiModelProperty(value = "级次 ")
    @TableField("depth")
    private Integer depth;

    @ApiModelProperty(value = "是否末级 ")
    @TableField("is_end_node")
    private Boolean isEndNode;

    @ApiModelProperty(value = "是否数量核算")
    @TableField("is_quantity")
    private Boolean isQuantity;

    @ApiModelProperty(value = "是否外币核算")
    @TableField("is_exchange")
    private Boolean isExchange;

    @ApiModelProperty(value = "是否汇总打印")
    @TableField("is_gather_printing")
    private Boolean isGatherPrinting;

    @ApiModelProperty(value = "是否受控可制单")
    @TableField("can_make_doc")
    private Boolean canMakeDoc;

    @ApiModelProperty(value = "是否受控")
    @TableField("is_controlled")
    private Boolean isControlled;

    @ApiModelProperty(value = "是否受控于业务系统")
    @TableField("is_controlled_bussinesssys")
    private Boolean isControlledBussinesssys;

    @ApiModelProperty(value = "是否受控于出纳")
    @TableField("is_controlled_cash")
    private Boolean isControlledCash;

    @ApiModelProperty(value = "是否现金科目")
    @TableField("is_cash")
    private Boolean isCash;

    @ApiModelProperty(value = "是否银行科目")
    @TableField("is_bank")
    private Boolean isBank;

    @ApiModelProperty(value = "是否日结账")
    @TableField("is_day_book")
    private Boolean isDayBook;

    @ApiModelProperty(value = "是否现金及现金等价物科目")
    @TableField("is_cash_equivalents")
    private Boolean isCashEquivalents;

    @ApiModelProperty(value = "是否部门核算")
    @TableField("is_auxacc_department")
    private Boolean isAuxaccDepartment;

    @ApiModelProperty(value = "是否个人核算")
    @TableField("is_auxacc_person")
    private Boolean isAuxaccPerson;

    @ApiModelProperty(value = "是否客户核算")
    @TableField("is_auxacc_customer")
    private Boolean isAuxaccCustomer;

    @ApiModelProperty(value = "是否供应商核算 ")
    @TableField("is_auxacc_supplier")
    private Boolean isAuxaccSupplier;

    @ApiModelProperty(value = "是否项目核算 ")
    @TableField("is_auxacc_project")
    private Boolean isAuxaccProject;

    @ApiModelProperty(value = "是否物料核算 ")
    @TableField("is_auxacc_inventory")
    private Boolean isAuxaccInventory;

    @ApiModelProperty(value = "停用 ")
    @TableField("disabled")
    private Integer disabled;

    @ApiModelProperty(value = "是否启用核算 ")
    @TableField("is_aux")
    private Boolean isAux;

    @ApiModelProperty(value = "期末调汇 ")
    @TableField("is_final_transfer_exchange")
    private Boolean isFinalTransferExchange;

    @ApiModelProperty(value = "填制凭证时录入结算信息")
    @TableField("is_billing_info")
    private Boolean isBillingInfo;

    @ApiModelProperty(value = "余额 ")
    @TableField("remainder")
    private BigDecimal remainder;

    @ApiModelProperty(value = "修改日志 ")
    @TableField("modify_log")
    private String modifyLog;

    @ApiModelProperty(value = "合并打印科目id ")
    @TableField("gatherPrintingAccount_id")
    private Integer gatherprintingaccountId;

    @ApiModelProperty(value = "默认币种id ")
    @TableField("default_currency_id")
    private Integer defaultCurrencyId;

    @ApiModelProperty(value = "默认币种名称")
    @TableField("default_currency_name")
    private String defaultCurrencyName;

    @ApiModelProperty(value = "账页格式1金额式2外币金额式3数量金额式4外币数量式 ")
    @TableField("book_format")
    private Integer bookFormat;

    @ApiModelProperty(value = "借贷方向 （1：借方 2：贷方）")
    @TableField("dc_direction")
    private Integer dcDirection;

    @ApiModelProperty(value = "创建时间 ")
    @TableField("created_time")
    private LocalDateTime createdTime;

    @ApiModelProperty(value = "计量单位id ")
    @TableField("unit_id")
    private Integer unitId;

    @ApiModelProperty(value = "计量单位名称")
    @TableField("unit_name")
    private String unitName;

}
